﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FilesHomeTask
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1) Пользователь вводит строку. Необходимо удалить из нее все пробелы, 
            // после этого определить является ли она палиндромом (одинаково пишется как с начала так и с конца)
            // 2) Считать текстовый файл.Определить самую длинную строку в файле и вывести ее номер на экран. 
            // Если строк несколько - то вывести номера всех таких строк.
            // 3) Считать текстовый файл.Пользователь вводит букву, 
            // необходимо вывести все слова в файле которые начинаются или заканчиваются на эту букву
        }

        //First
        static void IsStringPalindrome()
        {
            Console.Write("Enter string:");
            string input = Console.ReadLine();
            string inputWithoutSpaces = input.Replace(" ", "").ToLower();

            bool isStringPolindrom = false;

            int j = inputWithoutSpaces.Length;
            for (int i = 0; i < inputWithoutSpaces.Length; i++)
            {
                if (inputWithoutSpaces[i] != inputWithoutSpaces[j - 1])
                {
                    isStringPolindrom = false;
                    Console.WriteLine("Input string is not palindrome");
                    break;
                }
                else
                {
                    isStringPolindrom = true;
                    j--;
                }
            }
            if (isStringPolindrom == true)
            {
                Console.WriteLine("Input string is palindrome");
            }
        }

        //Second
        static void FindIndeOfTheLongestStringInFile()
        {
            string file = File.ReadAllText(@"C:\Users\anton\Documents\C#\Inteducation\aisaiev\FilesHomeTask\FilesHomeTask\HT.txt");
            string[] strSplit = file.Split('\n');
 
            int longestString = 0;
            int stringLength = 0;
            for (int i = 0; i < strSplit.Length; i++)
            {
                stringLength = strSplit[i].Length;
                if (stringLength >= longestString)
                {
                    longestString = stringLength;
                }
            }

            for (int i = 0; i < strSplit.Length; i++)
            {
                if(longestString == strSplit[i].Length)
                {
                    Console.WriteLine("The longest string index: {0}", i);
                }
            }
        }

        //Third
        static void IsFirstOrLastCharInWord()
        {
            string file = File.ReadAllText(@"C:\Users\anton\Documents\C#\Inteducation\aisaiev\FilesHomeTask\FilesHomeTask\HT.txt");
            string str = file.Replace("\r\n\r\n", " ").Replace(".", "").Replace(",", "").Replace("(", "").Replace(")", "");
            string[] strSplit = str.Split(' ');

            Console.Write("Enter one char: ");
            char input = char.Parse(Console.ReadLine());
            bool isCharExist = false;

            for (int i = 0; i < strSplit.Length; i++)
            {
                if (strSplit[i][0] == input || strSplit[i][strSplit[i].Length - 1] == input)
                {
                    Console.WriteLine(strSplit[i]);
                    isCharExist = true;
                }
            }
            if (isCharExist == false)
            {
                Console.WriteLine("Input char does not exist in the beginning or end of the word in the file.");
            }
        }
    }
}
